<%-- 
    Document   : enrichNetRes
    Created on : 21-feb-2014, 12:12:40
    Author     : Juan
--%>

<%@page import="archivos.BorrarDirectorio"%>
<%@page import="archivos.Sif"%>
<%@page import="graphs.GraphADT"%>
<%@page import="java.util.List"%>
<%@page import="java.io.File"%>
<%@page import="analisis.EnrichNet"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
    /*Se recogen todas las variables introducidas en el formulario*/
    String stat = (String) request.getParameter("stat");
    String fgs = (String) request.getParameter("fgs");
    String fgslib="";
    if(fgs.equals("KEGG")){
        fgslib= "KEGG.db";
    }
    else if(fgs.equals("Reactome")){
        fgslib= "reactome.db";
    }
    String nperm = (String) request.getParameter("nperm");
    String seed = (String) request.getParameter("seed");
    String file1 = (String) request.getParameter("file1");
    String file2 = (String) request.getParameter("file2");
    String sesion = (String) request.getParameter("sesion");
    File directorio = new File(sesion);
    session.setAttribute("fgs", fgs);

    /*Se llama al método de la clase 'EnrichNet', pasandole todos los parámetros necesarios, el cual
     creará y ejecutará un script en R, y retornará una lista de valores que seguidamente se pondrá en session para 
     posteriormente pintarla*/
    EnrichNet e = new EnrichNet();
    List<List> lista = e.generarScript(file1, fgs, fgslib, file2, nperm, stat, seed, sesion);
    session.setAttribute("listaEnrich", lista);

    /*Se lee el fichero de entrada (.sif) para obtener la lista de genes*/
    File file = new File(file2);
    GraphADT grafo = Sif.leeSIF(file);
    session.setAttribute("grafoUser", grafo);
    List<String> genes = grafo.getVertices();
    session.setAttribute("genes", genes);

    /*Se obtiene el nombre del fichero obligatorio (.sif) para saber su nombre*/
    String tituloFObligatorio = file.getName();
    session.setAttribute("tituloFObligatorio", tituloFObligatorio);

    /*Se modifica la varibale de session para saber que se tiene que mostrar si la opcion es 'enrichNet'*/
    String muestra = "enrichNet";
    session.setAttribute("muestra", muestra);

    /*Se modifica la variable de session llamada "muestra" para saber luego en la tabla
     que se debe de mostrar*/
    String opc = "enrichNetGraph";
    session.setAttribute("opcionElegida", opc);
    
    BorrarDirectorio.borrarDirectorio(directorio);
    directorio.delete();
%>
<jsp:forward page="../utilidades/viewTables.jsp"/>